Programs for graphics processing units are typically characterized by running many threads with few or no flow-control variations between the threads of execution. In contrast to a traditional central processing unit that typically has a handful of execution cores that operate independently, a graphics processing unit might have several thousands of cores that must largely run in concert. Because of these differences, traditional services, such as file systems, may be unavailable to software applications that utilize graphics processing units, which can result in excessively complex executable code and inefficient use of software development resources.